﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MailMarketing.Models.Entity;

namespace MailMarketing.Controllers
{
    public class GrupoClientesController : Controller
    {
        MailMarketingEntities objEntities = new MailMarketingEntities();

        //
        // GET: /GrupoClientes/

        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Index()
        {
            var GrupoClientes = objEntities.GrupoClientes.ToList();
            return View(GrupoClientes);
        }

        //
        // GET: /GrupoClientes/Details/5

        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Detalhes(int id)
        {
            var grupo = objEntities.GrupoClientes.Single(a => a.GrupoClienteId == id);
            return View(grupo);
        }

        //
        // GET: /GrupoClientes/Novo

        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Novo()
        {
            var grupoCliente = new GrupoCliente();
            return View(grupoCliente);
        } 

        //
        // POST: /GrupoClientes/Novo
        
        [HttpPost]
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Novo(GrupoCliente grupo)
        {
            try
            {
                objEntities.AddToGrupoClientes(grupo);
                objEntities.SaveChanges();
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View(grupo);
            }
        }
        
        //
        // GET: /GrupoClientes/Editar/5
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Editar(int id)
        {
            GrupoCliente grupo = objEntities.GrupoClientes.Single(g => g.GrupoClienteId == id);
            return View(grupo);
        }

        //
        // POST: /GrupoClientes/Edit/5

        [HttpPost]
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Editar(int id, GrupoCliente grupoAlterado)
        {
            GrupoCliente grupo = objEntities.GrupoClientes.Single(g => g.GrupoClienteId == id);
            try
            {
                grupo.Nome = grupoAlterado.Nome;
                UpdateModel(grupo,"GrupoCliente");
                objEntities.SaveChanges();
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View(grupoAlterado);
            }
        }

        //
        // GET: /GrupoClientes/Excluir/5

        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Excluir(int id)
        {
            GrupoCliente grupoCliente = objEntities.GrupoClientes.Single(g => g.GrupoClienteId == id);
            return View(grupoCliente);
        }

        //
        // POST: /GrupoClientes/Excluir/5

        [HttpPost]
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Excluir(int id, FormCollection collection)
        {
            GrupoCliente grupoCliente = objEntities.GrupoClientes.Single(g => g.GrupoClienteId == id);
            try
            {
                objEntities.DeleteObject(grupoCliente);
                objEntities.SaveChanges();
                // TODO: Add Excluir logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View(grupoCliente);
            }
        }
    }
}
